<?php

namespace app\common\command;

use app\admin\model\TaskModel;
use think\console\Command;
use think\console\Input;
use think\console\Output;

// 修改任务周期
class ChangeTaskDate extends Command
{
    protected function configure()
    {
        $this->setName('changeTaskDate')
            ->setDescription('change task date');
    }

    protected function execute(Input $input, Output $output)
    {
        /**
         * 任务分为本周任务和下周任务两种
         * 这个脚本的作用是：每周一00：01分执行，自动把本周时间内，类型为下周任务的数据，都修改为本周任务
         * 当前只针对教练发布的任务，不包含系统任务
         */
        [$beginDate, $endDate] = getBeginDateAndEndDateByTime(time());
        $beginTime = strtotime($beginDate);
        $endTime = strtotime($endDate);
//        $beginTime = "1716134400";
//        $endTime = "1716652800";
        $taskModel = new TaskModel();
        $taskList = $taskModel->where([
            'status' => 1,
            'is_delete' => 1,
            'type' => 2,
            'source' => 2
        ])->where('begin_time', '>=', $beginTime)->where('end_time', '<=', $endTime)->select();
        foreach ($taskList as &$task) {
            $task->type = 1;
            $task->save();
        }
        $output->writeln("change success");
    }
}